This repository was archived by the owner on Nov 21, 2024. It is now read-only.
Use DI Container to initialize Option classes #110
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
When using the Azure functions microsoft graph extension version 1.0.0-beta6 the Azure function application reports an AccessDenied Exception:
This error was already reported in #108 and fixed in #77. However, even when using the dev branch, the exception is still thrown.
Cause
While #77 has done some fixing in the
GraphOptions
class, the cause for this exception comes from the order in whichMicrosoftGraphExtensionConfigProvider
andWebhookSubscriptionStore
are created by the DI Container.The exception is thrown by the constructor of the
WebhookSubscriptionStore
, which tries to create theBYOB_TokenMap
directory:This directory is configured by the
BYOB_TokenMap
app setting and applied to theGraphOptions
class by callingGraphOptions.SetAppSettings()
. The call to this method is done inside the constructor of theMicrosoftGraphExtensionConfigProvider
class:Fix
Applying the values from the app settings to the Options classes should be done outside those infrastructure classes, because their initialization order depends on the DI Container.
This PR moves the initialization of those Options classes to the DI container.